package com.Stream;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
   目标：使用集合和Stream两种方式实现名字分两类
        1.把集合中所有姓张的拿到一个集合中
        2.再把姓张的长度为3的拿到一个集合中
 */

public class StreamDemo1 {
    public static void main(String[] args) {
        //使用集合的方法
        List<String> list=new ArrayList<>();
        Collections.addAll(list,"张无忌","李元芳","张三丰","张毅");
        System.out.println(list);
        //[张无忌, 李元芳, 张三丰, 张毅]

        //新建一个集合用来存放姓张的人
        List<String > zhangList=new ArrayList<>();
        for (String s : list) {
            if (s.startsWith("张")){
                zhangList.add(s);
            }
        }
        System.out.println(zhangList);
        //[张无忌, 张三丰, 张毅]

        //新建一个集合存放姓张，长度为三的人
        List<String>three_length=new ArrayList<>();
        for (String s : zhangList) {
            if (s.length()==3){
                three_length.add(s);
            }
        }
        System.out.println(three_length);
        //[张无忌, 张三丰]


        //使用Stream方式:stream可以直接将集合中的元素全部拿出来进行操作
        list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length()==3).forEach(s -> System.out.println(s));
        //张无忌 张三丰


    }
}
